home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiniExamples / AppKit / ZooView / RightSubView.m < prev    next >
Text File  |  1995-06-12  |  1KB  |  60 lines

  1.  
  2. /* 
  3.  * RightSubView.m
  4.  *
  5.  * Purpose:
  6.  *        This object simply blasts an image to itself. Knows the name of the
  7.  *        image, too.
  8.  *
  9.  * You may freely copy, distribute, and reuse the code in this example.
  10.  * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  11.  * fitness for any particular use.
  12.  *
  13.  * Written by: Mary McNabb
  14.  * Created: Apr 91
  15.  *
  16.  */
  17.  
  18. #import "RightSubView.h"
  19. #import <dpsclient/psops.h>
  20. #import <string.h>
  21.  
  22. @implementation RightSubView
  23.  
  24. - drawSelf:(const NXRect *)r :(int)c
  25. {
  26.     NXPoint position;
  27.     NXSize animalSize;
  28.     
  29.     id image = [NXImage findImageNamed:animalName];
  30.         
  31.         /* figure out the position of the lower left hand corner */
  32.     [image getSize:&animalSize];
  33.     position.x = bounds.size.width / 2.0 - animalSize.width / 2.0;
  34.     position.y = bounds.size.height / 2.0 - animalSize.height / 2.0;
  35.     if (position.x < 0) position.x = bounds.origin.x;
  36.     if (position.y < 0) position.y = bounds.origin.y;
  37.     
  38.         /* draw background first to cover up old image */
  39.     PSsetgray(NX_LTGRAY);
  40.     NXRectFill(r);
  41.     [image composite:NX_SOVER toPoint:&position];
  42.     [image free];
  43.     PSsetgray(NX_DKGRAY);
  44.     NXFrameRect(r);
  45.     
  46.     return self;
  47. }
  48.  
  49. /*
  50.  * just remember the name of the picture
  51.  */
  52. - setAnimalPicture:(char *) path
  53. {
  54.     strcpy(animalName, path);
  55.     [self display];
  56.     return self;
  57. }
  58.  
  59. @end
  60.